package com.atguigu.bigdata.scala.chapter10

object Scala05_Transform {

    def main(args: Array[String]): Unit = {

        // TODO - 隐式转换
//        implicit def transform( user:User ): UserExt = {
//            new UserExt
//        }

        val user = new User()
        user.insertUser()
        user.updateUser()
    }
    // 隐式类：将类声明为implicit,那么编译器会自动将当前编译错误的类和隐式类进行转换
    // 如果能够转换，那么直接转换。此时就不需要隐式函数
    // 隐式类需要声明构造参数，这个参数就是用于转换的类型
    implicit class UserExt(user:User) {
        def updateUser(): Unit = {
            println("update user...")
        }
    }
    class User {
        def insertUser(): Unit = {
            println("insert user...")
        }
    }
}
